package com.mida.dms.knw.service;

import com.mida.dms.knw.entity.KnwConceptualDomain;
import com.mida.dms.knw.entity.vo.KnwCodingConceptualDomainPageVo;
import com.mida.dms.knw.entity.vo.KnwConceptualDomainVo;
import com.mida.dms.knw.vo.PageResultVo;
import com.mida.tool.common.result.ActionResult;
import com.mida.tool.common.result.ListResult;

import java.util.List;

public interface KnwConceptualDomainService {

    /**
     * 根据概念soid，查询概念域相关数据业务处理
     * @param conceptualSoid
     * @return
     */
    ListResult<List<KnwConceptualDomainVo>> getKnwConceptualDomain(long conceptualSoid);

    /**
     * 根据概念soid，分页查询概念域列表业务处理
     * @param domainSoid
     * @return
     */
    ListResult<PageResultVo<KnwCodingConceptualDomainPageVo>> findPage(Long domainSoid, Long currentPage, Long pageSize);

    /**
     * 绑定编码体系业务处理
     * @param domainSoid
     * @param derailCodingSystemSoids
     * @return
     */
    ActionResult add(long domainSoid, String derailCodingSystemSoids);

    /**
     * 解绑业务处理
     * @param codingDomainSoid
     * @return
     */
    ActionResult delete(long codingDomainSoid);

    /**
     * 更新首选标识业务处理
     * @param codingDomainSoid
     * @param domainSoid
     * @return
     */
    ActionResult update(long codingDomainSoid, long domainSoid);

    ListResult<List<KnwCodingConceptualDomainPageVo>> getCodingDomainAll(Long domainSoid);

    ListResult<List<KnwConceptualDomain>> getAllCodingDomain();

}
